layui.use(['form','layer','table','laytpl'],function(){
    var form = layui.form,
        layer = parent.layer === undefined ? layui.layer : top.layer,
        $ = layui.jquery,
        laytpl = layui.laytpl,
        table = layui.table;

    //用户列表
    var tableIns = table.render({
        elem: '#adminsList',
        url : 'adminsList', // 直接到本控制器下的 adminList 方法
        cellMinWidth : 95, // 全局定义所有常规单元格的最小宽度（默认：60）
        page : true,
        height : "full-125",
        limits : [10,15,20,25],
        limit : 15,
        id : "adminsListTable",
        cols : [[
            {type: "checkbox", fixed:"left", width:50},
            {field: 'name', title: '管理员帐号', minWidth:100, align:"center",edit:'text'},
            // {field: 'userEmail', title: '邮箱', minWidth:200, align:'center',templet:function(d){
            //     return '<a class="layui-blue" href="mailto:'+d.userEmail+'">'+d.userEmail+'</a>';
            // }},
            // {field: 'userSex', title: '用户性别', align:'center'},
            {field: 'email',title:'邮箱',minWidth:200,align:'center',templet:function(d){
              return '<a class="layui-blue" href="mailto:' + d.email + '">' + d.email + '</a>';
            }},
            {field: 'phone',title:'手机号码',minWidth:200,align:'center',edit:'text'},
            // {field: 'status',title:'状态',minWidth:200,align:'center'},
            {field: 'status',title:'状态',minWidth:200,align:'center',templet:function(d){
              if(d.grade == "0"){
                return "正常使用";
              }else if(d.grade == "1"){
                return "禁止使用";
              }else{
                return "未知";
              }
            }},
            {field: 'grade',title:'等级',minWidth:200,align:'center',templet:function(d){
              if(d.status == "0"){
                  return "普通管理员";
              }else if(d.status == "1"){
                  return "超级管理员";
              }else{
                  return "未知";
              }
            }},
            {field: 'create_time',title:'添加时间',minWidth:200,align:'center'},
            // {field: 'userStatus', title: '用户状态',  align:'center',templet:function(d){
            //     return d.userStatus == "0" ? "正常使用" : "限制使用";
            // }},
            // {field: 'userGrade', title: '用户等级', align:'center',templet:function(d){
                // if(d.userGrade == "0"){
                //     return "注册会员";
                // }else if(d.userGrade == "1"){
                //     return "中级会员";
                // }else if(d.userGrade == "2"){
                //     return "高级会员";
                // }else if(d.userGrade == "3"){
                //     return "钻石会员";
                // }else if(d.userGrade == "4"){
                //     return "超级会员";
                // }
            // }},
            // {field: 'userEndTime', title: '最后登录时间', align:'center',minWidth:150},
            {title: '操作', minWidth:175, templet:'#adminsListBar',fixed:"right",align:"center"}
        ]]
    });

    //搜索【此功能需要后台配合，所以暂时没有动态效果演示】
    $(".search_btn").on("click",function(){
        if($(".searchVal").val() != ''){
            table.reload("adminsListTable",{
                page: {
                    curr: 1 //重新从第 1 页开始
                },
                where: {
                    key: $(".searchVal").val()  //搜索的关键字
                }
            })
        }else{
            layer.msg("请输入搜索的内容");
        }
    });

    //添加用户
    function addAdmins(edit){
        var index = layui.layer.open({
            title : "添加管理员",
            type : 2,
            content : "adminsAdd", // 可以直接定位到本控制器下的方法
            success : function(layero, index){
                // var body = layui.layer.getChildFrame('body', index);
                // if(edit){
                //     body.find(".userName").val(edit.userName);  //登录名
                //     body.find(".userEmail").val(edit.userEmail);  //邮箱
                //     body.find(".userSex input[value="+edit.userSex+"]").prop("checked","checked");  //性别
                //     body.find(".userGrade").val(edit.userGrade);  //会员等级
                //     body.find(".userStatus").val(edit.userStatus);    //用户状态
                //     body.find(".userDesc").text(edit.userDesc);    //用户简介
                //     form.render();
                // }
                setTimeout(function(){
                    layui.layer.tips('点击此处返回管理员中心', '.layui-layer-setwin .layui-layer-close', {
                        tips: 3
                    });
                },500)
            }
        })
        layui.layer.full(index);
        //改变窗口大小时，重置弹窗的宽高，防止超出可视区域（如F12调出debug的操作）
        $(window).on("resize",function(){
            layui.layer.full(index);
        })
    }
    $(".addAdmins_btn").click(function(){
        addAdmins();
    })

    //修改管理员
    function editAdmins(edit){
        var index = layui.layer.open({
            title : "修改管理员",
            type : 2,
            content : "adminsEdit", // 可以直接定位到本控制器下的方法
            success : function(layero, index){
                var body = layui.layer.getChildFrame('body', index);
                if(edit){
                    body.find(".id").val(edit.id);  //登录名
                    body.find(".name").val(edit.name);  //登录名
                    body.find(".email").val(edit.email);  //邮箱
                    body.find(".phone").val(edit.phone);  //手机
                    body.find(".pass").val(edit.pass);  //手机
                    // body.find(".userSex input[value="+edit.userSex+"]").prop("checked","checked");  //性别
                    body.find(".grade").val(edit.grade);  //会员等级
                    body.find(".status").val(edit.status);    //用户状态
                    // body.find(".userDesc").text(edit.userDesc);    //用户简介
                    form.render();
                }
                setTimeout(function(){
                    layui.layer.tips('点击此处返回管理员中心', '.layui-layer-setwin .layui-layer-close', {
                        tips: 3
                    });
                },500)
            }
        })
        layui.layer.full(index);
        //改变窗口大小时，重置弹窗的宽高，防止超出可视区域（如F12调出debug的操作）
        $(window).on("resize",function(){
            layui.layer.full(index);
        })
    }


    //批量删除
    $(".delAll_btn").click(function(){
        // 获取选中行
        var checkStatus = table.checkStatus('adminsListTable'),
            data = checkStatus.data, //获取选中行的数据
            id = [];
            // data.length 获取选中行数量，可作为是否有选中行的条件
        if(data.length > 0) {
            for (var i in data) {
                id.push(data[i].id);
            }
            layer.confirm('确定删除选中的管理员？', {icon: 3, title: '提示信息'}, function (index) {
                //弹出loading
                var index = layer.msg('数据提交中，请稍候',{icon: 16,time:false,shade:0.8});
                $.get("adminsDel",{
                    id : id  //将需要删除的id作为参数传入
                },function(res){
                  setTimeout(function(){
                        if(res){
                          layer.close(index);
                          tableIns.reload(); // 重新渲染刷新表格
                          layer.msg("删除成功！");
                        }else{
                          layer.close(index);
                          layer.msg("删除失败！");
                        }
                  },2000);
                })
            })
        }else{
           layer.msg("请选择需要删除的管理员");
        }
    })

    //列表操作
    table.on('tool(adminsList)', function(obj){
        var layEvent = obj.event,
            data = obj.data;

        if(layEvent === 'edit'){ //编辑
            editAdmins(data);
        }else if(layEvent === 'usable'){ //启用禁用
            var _this = $(this),
                usableText = "是否确定禁用此用户？",
                btnText = "已禁用";
                // 在这里获取到字符串左右有空格，对比不相等，要使用jquery的trim方法去除空格
            if($.trim(_this.text())=="已禁用"){
                usableText = "是否确定启用此用户？",
                btnText = "已启用";
            }
            layer.confirm(usableText,{
                icon: 3,
                title:'系统提示',
                cancel : function(index){
                    layer.close(index);
                }
            },function(index){
                if(data.status == 0){
                  var status = 1;
                }else if(data.status == 1){
                  var status = 0;
                }
                $.get("changeStatus",{id:data.id,status:status},function(res){
                  _this.text(btnText);
                })
                layer.close(index);
            },function(index){
                layer.close(index);
            });
        }else if(layEvent === 'del'){ //删除
            layer.confirm('确定删除此管理员？',{icon:3, title:'提示信息'},function(index){
                //弹出loading
                var index = top.layer.msg('数据提交中，请稍候',{icon: 16,time:false,shade:0.8});

                $.get("adminsDel",{  // 直接定位到此控制下的 adminsDel 方法
                    id : data.id  //将需要删除的id作为参数传入
                },function(res){
                  setTimeout(function(){
                        if(res){
                          // top.layer.close(index);
                          layer.closeAll();
                          top.layer.msg("删除成功！");
                          tableIns.reload(); // 重新渲染刷新表格
                        }else{
                          // layer.close(index);
                          layer.closeAll();
                          top.layer.msg("删除失败！");
                        }
                  },2000);
                });
            });

        }
    });

    // table.on('edit(test)', function(obj){ //注：edit是固定事件名，test是table原始容器的属性 lay-filter="对应的值"
    //   console.log(obj.value); //得到修改后的值
    //   console.log(obj.field); //当前编辑的字段名
    //   console.log(obj.data); //所在行的所有相关数据
    // });

})
